Displaying items on handheld devices

ABSTRACT

A method of displaying data items on handheld devices. The device displays data items in a scrollable viewport of vertically arranged fields. Date separators included in the vertically arranged fields to enable a user to associate the data items with a date. The date separators have “sticky” operation, meaning that the device ensures a date separator always appears within the viewport, even when the viewport has been scrolled to the middle of a long list of fields all associated with the same date. The device may ensure that the top field of the viewport always contains a date separator associated with the data item immediately below.

RELATED APPLICATION DATA

The present application is a continuation of U.S. patent applicationSer. No. 12/969,722 filed Dec. 16, 2010, which is a continuation of U.S.patent application Ser. No. 12/139,859 filed Jun. 16, 2008 (now U.S.Pat. No. 7,877,708), which is a continuation of U.S. patent applicationSer. No. 11/143,473 filed Jun. 3, 2005 (now U.S. Pat. No. 7,404,152),the contents of which are hereby incorporated by reference.

TECHNICAL FIELD

The present application relates to handheld devices and, in particular,to methods and systems for displaying data items on handheld devices.

BACKGROUND

Handheld electronic devices are commonly used to store and displaymessages. Devices that are enabled for wireless communication may alsobe used for sending and receiving messages. Where possible, the deviceshave been provided with messaging application having a user interfacesimilar to the user interface found for similar application on a desktopcomputer. For example, an e-mail application may have a scrollableviewport for displaying messages in chronological order on the basis ofthe time and date on which they were received. The most recent messagesare typically at the top. The user may then scroll through the list ofmessages to locate a particular desired message.

A handheld device typically has a limited display space due to itscompact nature. This can result in some problems for displaying messagesin a conventional format. For example, the limited display space mayresult in fewer messages appearing in the scrollable viewport. In somecases, the user can lose track of where he or she is in the list and mayhave difficulty identifying the date with which a particular message isassociated.

Other features of handheld devices distinguish them from conventionaldesktop computers in terms of the ability to display and work withmessages. For example, scrolling and selecting items on a handhelddevice may be more difficult since these devices typically do notincludes a mouse. Therefore, simply scrolling on a handheld device maynot be a desirable solution to the problem of losing track of the datesassociated with messages in the viewport.

Accordingly, it would be advantageous to improve the display of messageson handheld devices.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example, to the accompanyingdrawings which show an embodiment of the present application, and inwhich:

FIG. 1 shows a block diagram of a user device to which the presentapplication is applied in an example embodiment;

FIG. 2 shows, in diagrammatic form, a front view of an embodiment of thedevice from FIG. 1;

FIG. 3 shows a diagrammatic view of the scrollable message viewport fromFIG. 2;

FIG. 4 shows, in diagrammatic form, an embodiment of a date separatoritem;

FIGS. 5(a)-5(e) show an example embodiment of a scrollable viewport toillustrate the “sticky” operation of date separator items; and

FIG. 6 shows, in flowchart form, an embodiment of a method fordisplaying messages on a handheld device.

Similar reference numerals are used in different figures to denotesimilar components.

DESCRIPTION OF EXAMPLE EMBODIMENTS

The present application provides a method of displaying messages onhandheld devices that improves the usability of the device. The methodprovides date separators inserted into a vertically arranged list ofmessages to enable the user to associate the messages with a date. Thedate separators have a “sticky” operation, meaning that the deviceensures a date separator always appears within a viewport for viewingmessages, even when the viewport has been scrolled to the middle of along list of messages all associated with the same date. In oneembodiment, the device ensures that the top field of the viewport alwayscontains a date separator associated with the message immediately below.

In one example embodiment of a first aspect of the present disclosure,there is provided a method of displaying data items on a display of anelectronic device, the method comprising: displaying a viewport on thedisplay, the viewport including a plurality of fields arranged inchronological order in a vertical list, wherein each of the fieldscontains either a data item or a date separator item, each of the fieldshaving an associated date, wherein the plurality of fields include atopmost field in which a first date separator item is displayed, whereinthe first date separator item is based upon an associated date of afield of the viewport located immediately below the topmost field;displaying a second date separator item in the topmost field of theviewport in response to scrolling of the viewport when the second dateseparator item appears in a field of the viewport located immediatelybelow the topmost field responsive to the scrolling of the viewport,wherein the second date separator item is based upon the associated dateof the field of the viewport located immediately below the second dateseparator item; and maintaining the display of the first date separatoritem in the topmost field of the viewport in response to scrolling ofthe viewport when the second date separator item does not appear in thefield of the viewport located immediately below the topmost fieldresponsive to the scrolling of the viewport.

In another example embodiment of the first aspect of the presentdisclosure, there is provided a method of displaying data items on adisplay of an electronic device, the method comprising: displaying aviewport on the display, the viewport including a plurality of fieldsarranged in chronological order in a vertical list, wherein each of thefields contains either a data item or a date separator item, each of thefields having an associated date, wherein the plurality of fieldsinclude a topmost field in which a first date separator item isdisplayed, wherein the first date separator item is based upon anassociated date of a field of the viewport located immediately below thetopmost field; displaying a data item in the topmost field of theviewport in response to the scrolling of the viewport when a second dateseparator item appears in another field of the viewport responsive tothe scrolling of the viewport; and maintaining the display of the firstdate separator item in the topmost field of the viewport in response tothe scrolling of the viewport when a second date separator item does notappear in another field of the viewport responsive to the scrolling ofthe viewport.

In a further example embodiment of the first aspect of the presentdisclosure, there is provided a method of displaying messages on adisplay of a handheld device. The display includes a scrollable viewportfor displaying the messages. The viewport is divided into a plurality offields arranged in a vertical list including a topmost field and asecond field, the second field being immediately below the topmost fieldin the vertical list. The method includes the steps of identifying a topmessage for display in the second field, determining a date associatedwith the top message, and displaying a date separator item in thetopmost field, wherein the date separator item is based upon the dateassociated with the top message.

In yet a further example embodiment of the first aspect of the presentdisclosure, there is provided a method of displaying messages on adisplay of a handheld device, the display including a scrollableviewport for displaying the messages, each message having an associateddate, a group of messages associated with a same associated datecomprising a first associated message and other associated messages, theviewport being divided into a plurality of fields arranged in a verticallist including a topmost field and a second field, the second fieldbeing immediately below the topmost field in the vertical list, whereinthe number of messages exceeds the capacity of the scrollable viewportto display all of the messages at one time. The method includesidentifying one of the other associated messages for display in thesecond field; displaying a date separator item in the topmost field,wherein the date separator item is based upon the same associated dateof the one of the other associated messages; receiving a scroll command,wherein the scroll command is a request to move the vertical list up ordown by one message; and identifying a next message for display in thesecond field after scrolling is applied and determining whether the nextmessage is associated with the same associated date as the dateseparator item. If the next message is associated with the sameassociated date, then maintaining display of the date separator item inthe topmost field, and otherwise, displaying a new date separator itemin the topmost field, wherein the new date separator item is based upona date associated with the next message.

In embodiments of a second aspect of the present disclosure, there isprovided an electronic device comprising: a display; a memory; an inputdevice; and a processor coupled to the display, memory and input device,wherein the memory has stored thereon executable instructions that, whenexecuted by the processor, cause the electronic device to perform themethods described in the present disclosure.

In an example embodiment of the second aspect of the present disclosure,there is provided a handheld electronic device having a messagingapplication for reading and composing messages. The device includes adisplay screen for displaying a scrollable viewport for displaying themessages. The viewport is divided into a plurality of fields arranged ina vertical list including a topmost field and a second field, the secondfield being immediately below the topmost field in the vertical list.The device also includes a processor connected to the display screen forcontrolling operation of the display screen. The device includes ascrolling module for controlling the display of messages and theoperation of the scrollable viewport. The scrolling module includes acomponent for identifying a top message for display in the second field,a component for determining a date associated with the top message, anda component for displaying a date separator item in the topmost field,wherein the date separator item is based upon the date associated withthe top message.

In another example embodiment of the second aspect of the presentdisclosure, there is provided a handheld electronic device having amessaging application for reading and composing messages, each messagehaving an associated date, a group of messages associated with a samedate comprising a first message and other associated messages. Thedevice includes a display screen for displaying a scrollable viewportfor displaying the messages, the viewport being divided into a pluralityof fields arranged in a vertical list including a topmost field and asecond field, the second field being immediately below the topmost fieldin the vertical list, wherein the number of messages exceeds thecapacity of the scrollable viewport to display all of the messages atone time. The device also includes an input device for receiving ascroll command from a user, wherein the scroll command is a request tomove the vertical list up or down by one message; a processor connectedto the display screen for controlling operation of the display screen;and a scrolling module for controlling the display of messages and theoperation of the scrollable viewport, the scrolling module including acomponent configured to identify one of the other associated messagesfor display in the second field, and a component configured to display adate separator item in the topmost field, wherein the date separatoritem is based upon the associated date of the one of the otherassociated messages. The scrolling module is configured to identify anext message for display in the second field after scrolling is appliedand configured to determine whether the next message is associated withthe same associated date as the date separator item, and if so, maintaindisplay of the date separator item in the topmost field, and if not,display a new date separator item in the topmost field, wherein the newdate separator item is based upon a date associated with the nextmessage.

In a further example embodiment of the second aspect of the presentdisclosure, there is provided a handheld electronic device that includesmessaging means for reading and composing messages, each message havingan associated date, a group of messages associated with a same datecomprising a first message and other associated messages; display meansfor displaying a scrollable viewport for displaying the messages, theviewport being divided into a plurality of fields arranged in a verticallist including a topmost field and a second field, the second fieldbeing immediately below the topmost field in the vertical list, whereinthe number of messages exceeds the capacity of the scrollable viewportto display all of the messages at one time; input means for receiving ascroll command from a user, wherein the scroll command is a request tomove the vertical list up or down by one message; processing means forcontrolling operation of the display screen; and scrolling means forcontrolling the display of messages and the operation of the scrollableviewport. The scrolling means includes means for identifying one of theother associated messages for display in the second field, means fordisplaying a date separator item in the topmost field, wherein the dateseparator item is based upon the associated date of the one of the otherassociated messages, means for identifying a next message for display inthe second field after scrolling is applied for determining whether thenext message is associated with the same associated date as the dateseparator item, and if so, maintaining display of the date separatoritem in the topmost field, and if not, displaying a new date separatoritem in the topmost field, wherein the new date separator item is basedupon a date associated with the next message.

In embodiments of a further aspect of the present disclosure, there isprovided a non-transitory machine readable medium tangibly embodyingmachine executable instructions for displaying items on a display of anelectronic device when executed by the processor of the electronicdevice, cause the electronic device to perform the methods described inthe present disclosure.

Other aspects and features of the present application will be apparentto those of ordinary skill in the art from a review of the followingdetailed description when considered in conjunction with the drawings.

The following description of one or more specific embodiments does notlimit the implementation to any particular computer programming languageor system architecture. The present application is not limited to anyparticular operating system, mobile device architecture, or computerprogramming language. Moreover, although some of the embodimentdescribed below include mobile devices, the present application is notlimited to mobile devices; rather, it may be embodied within a varietyof user devices or terminals, including handheld devices, mobiletelephones, personal digital assistants (PDAs), personal computers,audio-visual terminals, televisions, and other devices. Any referencesherein to “messages” are not intended to be limited to e-mail, butshould be understood to include many other kinds of messages, includetext messages, audio messages, video messages, and other items,including calendar entries, tasks, and other date-related items.

Referring now to the drawings, FIG. 1 is a block diagram of an exampleembodiment of a user device. In the example embodiment, the user deviceis a two-way mobile communication device 10 having data and possiblyalso voice communication capabilities. In an example embodiment, thedevice 10 has the capability to communicate with other computer systemson the Internet. Depending on the functionality provided by the device10, in various embodiments the device may be a data communicationdevice, a multiple-mode communication device configured for both dataand voice communication, a mobile telephone, a PDA enabled for wirelesscommunication, or a computer system with a wireless modem, among otherthings.

In this embodiment, the device 10 includes a communication subsystem 11.In one embodiment, the communication subsystem 11 may include areceiver, a transmitter, and associated components such as one or more,preferably embedded or internal, antenna elements, and a processingmodule such as a digital signal processor (DSP). As will be apparent tothose skilled in the field of communications, the particular design ofthe communication subsystem 11 will be dependent upon the communicationnetwork in which the device 10 is intended to operate.

Signals received by the device 10 from a wireless communication network50 are input to the receiver of the communication subsystem 11, whichmay perform such common receiver functions as signal amplification,frequency down conversion, filtering, channel selection and the like. Ina similar manner, signals to be transmitted are processed, includingmodulation and encoding for example, by the DSP and input to thetransmitter for digital to analog conversion, frequency up conversion,filtering, amplification and transmission over the wirelesscommunication network 50.

The device 10 includes a microprocessor 38 that controls the overalloperation of the device. The microprocessor 38 interacts with thecommunications subsystem 11 and also interacts with further devicesubsystems such as a graphics subsystem 44, flash memory 24, randomaccess memory (RAM) 26, auxiliary input/output (I/O) subsystems 28,serial port 30, keyboard or keypad 32, speaker 34, microphone 36, ashort-range communications subsystem 40, and any other device subsystemsgenerally designated as 42. The graphics subsystem 44 interacts with thedisplay 22 and renders graphics or text upon the display 22.

Operating system software 54 and various software applications 58 usedby the microprocessor 38 are, in one example embodiment, stored in apersistent store such as flash memory 24 or similar storage element.Those skilled in the art will appreciate that the operating system 54,software applications 58, or parts thereof, may be temporarily loadedinto a volatile store such as RAM 26. It is contemplated that receivedcommunication signals may also be stored to RAM 26.

The microprocessor 38, in addition to its operating system functions,preferably enables execution of software applications 58 on the device.A predetermined set of software applications 58 which control basicdevice operations, including data and voice communication applicationsfor example, will normally be installed on the device 10 duringmanufacture. Further software applications 58 may also be loaded ontothe device 10 through the network 50, an auxiliary I/O subsystem 28,serial port 30, short-range communications subsystem 40 or any othersuitable subsystem 42, and installed by a user in the RAM 26 or anon-volatile store for execution by the microprocessor 38. Suchflexibility in application installation increases the functionality ofthe device and may provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications may enable electronic commerce functions andother such financial transactions to be performed using the device 10.

In a data communication mode, a received signal such as a text messageor web page download will be processed by the communication subsystem 11and input to the microprocessor 38, which will preferably furtherprocess the received signal for output to the display 22 through thegraphics subsystem 44, or alternatively to an auxiliary I/O device 28. Auser of device 10 may also compose data items within a softwareapplication 58, such as email messages for example, using the keyboard32 in conjunction with the display 22 and possibly an auxiliary I/Odevice 28 such as, for example, a thumbwheel. Such composed items maythen be transmitted over a communication network through thecommunication subsystem 11.

The serial port 30 in FIG. 1 would normally be implemented in a personaldigital assistant (PDA)-type communication device for whichsynchronization with a user's desktop computer (not shown) may bedesirable, but is an optional device component. Such a port 30 wouldenable a user to set preferences through an external device or softwareapplication and would extend the capabilities of the device by providingfor information or software downloads to the device 10 other thanthrough a wireless communication network.

A short-range communications subsystem 40 is a further component whichmay provide for communication between the device 10 and differentsystems or devices, which need not necessarily be similar devices. Forexample, the subsystem 40 may include an infrared device and associatedcircuits and components or a Bluetooth™ communication module to providefor communication with similarly enabled systems and devices. The device10 may be a handheld device.

Wireless mobile network 50 is, in an example embodiment, a wirelesspacket data network, (e.g. Mobitex™ or DataTAC™), which provides radiocoverage to mobile devices 10. Wireless mobile network 50 may also be avoice and data network such as GSM (Global System for MobileCommunication) and GPRS (General Packet Radio System), CDMA (CodeDivision Multiple Access), or various other third generation networkssuch as EDGE (Enhanced Data rates for GSM Evolution) or UMTS (UniversalMobile Telecommunications Systems).

In one embodiment, the software resident on the device 10 includes amessaging application 56 for sending, receiving and displaying messagesor other items, such as tasks, calendar items, etc. An example of asoftware application similar to the messaging application 56 is theMicrosoft Outlook™ software application produced by the MicrosoftCorporation. Note that the present application is not limited to use inassociation with e-mail messages and may apply to other messages,including SMS messages, and other “items”, including calendar entries,task list entries, and other items having a date associated with them.References in the present application to “messages” or a “messagingapplication” should be understood to encompass and include this widerrange of items.

The messaging application 56 includes a display component for displayingmessages on the display 22 of the device 10 so that a user can read andsort through available messages. The display component defines astructure and format for displaying the available messages to the userand providing a user interface for selecting, opening, composing, andotherwise working with the messages.

In practice the number of messages available far exceeds the displaycapabilities of the device 10 in that not all messages may be displayedat once, even if only basic header information is displayed. This isespecially the case on a handheld device which has a limited displayscreen as compared to a desktop or laptop personal computer.Accordingly, the display component includes a scrolling module 62 fordetermining the content displayed within a scrollable viewport. Thescrollable viewport contains a vertically arranged list of messages thatis a subset of the available messages. Using an input device, such asthe keyboard 32 or a thumbwheel 28 a (FIG. 2), the user can cause thedisplayed list within the viewport to scroll up or down. Theimplementation of a scrollable viewport and the use of the keyboard 32or thumbwheel 28 a to actuate a scrolling function is a well definedaspect of existing operating systems and will be well understood by oneof ordinary skill in the art.

Reference is now made to FIG. 2, which shows, in diagrammatic form, afront view of an embodiment of the device 10 from FIG. 1. The device 10includes the display 22, the keyboard 32 and the thumbwheel 28 a.

The display 22 shows a graphical user interface for the messagingapplication 56 (FIG. 1). The user interface may include a tool bar 70, afolder list 72, and a scrollable message viewport 74. The folder list 72may contain a list of selectable folders, such a calendar folder, amessage inbox folder, a deleted items folder, etc. The user may selectone of the available folders from the folder list 72. The contents ofthe selected folder are displayed in the scrollable message viewport 74.

Referring now to FIG. 3, which shows the scrollable message viewport 74from FIG. 2, it will be noted that the scrollable message viewport 74 isdivided into a plurality of fields 76 arranged in a vertical list(numbered individually as 76 a-76 g). It may also include a scrollbar 78for indicating the relative position of the viewport 74 in relation tothe full vertical list of messages and providing a user interface foractuating a scrolling operation.

In the scrollable message viewport 74 associated with the messagingapplication 56 (FIG. 1) each of the fields 76 contains either a messageitem or a date separator item. Message items may include headerinformation such as the sender of the message, the title of the message,and any associated markers, such an urgency indicator. Other informationmay be displayed in the field 76 with regard to the message item. In oneembodiment, the field 76 shows the first few lines of the messagecontent. In another embodiment, the time and date of the message isdisplayed. The message items appearing in the vertical list of messagesare arranged in a chronological format based upon a date and timeassociated with each message item.

A date separator item is not a specific item but rather is delineatorfor indicating a particular date or range of dates associated with themessages that follow in the vertical list. Reference is now made to FIG.4, which shows in diagrammatic form an embodiment of a date separatoritem 80. The date separator item 80 includes a date indicator 82. Thedate indicator 82 may be an absolute date (e.g. Jan. 1, 2005), arelative date (e.g. Today), or a relative or absolute range of dates(e.g. Last Week). When a date separator item 80 appears in the list ofmessages, all the messages following the date separator item 80 in thelist are associated with the date indicator 82 until the next dateseparator item in the list is encountered—i.e. all the message itemswere received “Today” or “Last Week”, as the case may be.

In this embodiment the date separator item 80 further includes anexpansion indicator 84 and a message count indicator 86. The expansionindicator 84 graphically indicates whether the subsequent messagesassociated with the date indicator 82 are displayed in the list or arehidden. If the messages are displayed, then the expansion indicator 84points downwards; and if they are hidden, then the expansion indicator84 points to the side, as shown in FIG. 4. The user may selectively hideor display the messages associated with the date indicator 82.

The message count indicator 86 displays a message count associated withthe date indicator 82. In one embodiment, the message count indicator 86shows the number of message items associated with the date indicator 82.In another embodiment, the message count indicator 86 shows the numberof unread message items associated with the date indicator 82. In yetanother embodiment, the message count indicator 86 shows the number ofunread message items associated with the date indicator 82 that havebeen received within a predetermined period of time, such as within thelast hour. Other variations and combinations will be appreciated bythose of ordinary skill in the art.

According to one aspect of the present application, the date separatoritem 80 is “sticky”, meaning that it does not scroll out of the viewport74 (FIG. 3) until a condition is met, for example if another dateseparator item scrolls into the viewport 74. In one embodiment, the“sticky” date separator item 80 holds its position at the topmost field76 a (FIG. 3) of the viewport 74 while message items are scrolledupwards until the next date separator item in the list is scrolledupwards and “pushes” the “sticky” date separator item 80 out of thetopmost field 76 a, whereupon the next date separator item becomes the“sticky” date separator item 80 at the top of the viewport 74.Similarly, when scrolling messages down into the viewport 74 a dateseparator item will remain in the topmost field 76 a provided that theitem in field 76 b is associated with the date separator item. When theitem scrolled into field 76 b is associated with the “next” date, thenthe date separator item is bumped or scrolled down to field 76 c and thetopmost field 76 a contains the next date separator item.

Referring again to FIG. 1, the scrolling module 62 determines themessage items and date separator items to be displayed in the viewport74 (FIG. 3). The scrolling module 62 enforces the conditions formaintaining the “sticky” date separator item 80 (FIG. 4) in the topmostfield 76 a (FIG. 3) of the viewport 74 while a user scrolls throughmessages. The scrolling module 62 determines when the conditions allowfor the “sticky” date separator item 80 to scroll up out of the viewport74 and/or be replaced with the next “sticky” date separator item 80.

Reference is now made to FIGS. 5(a)-5(e), which diagrammatically show anexample embodiment of the “sticky” operation of date separator items 80(shown individually as 80 a, 80 b, 80 c, and 80 d). Each FIG. 5(a) to(e) shows the viewport 74 containing the list of fields 76, includingthe topmost field 76 a.

In FIG. 5(a), the topmost field 76 a contains the first date separatoritem 80 a. The first date separator item 80 a shows an absolute datereference of “Feb. 10, 2005” and a message count of three (3). It willbe appreciated that the date reference and message count may beimplemented in alternative ways, as described above, such as to showunread messages or relative date indicators. Following the first dateseparator item 80 a in the list are three messages (A1-A3). The nextitem shown in the fields 76 of the viewport 74 is the second dateseparator item 80 b, which displays a date reference of “Feb. 9, 2005”and a message count of twelve (12).

In FIG. 5(b), the user has scrolled downwards to the point where thetopmost field 76 a now contains the second date separator item 80 b,which is then followed by messages B1-B10, which are associated with thesecond date separator item by virtue of a date (for example, date ofreceipt).

An embodiment of the “sticky” operation of the date separator items 80is illustrated in FIG. 5(c 1), which shows that as the user continues toscroll downwards the second date separator item 80 b remains in thetopmost field 76 a, despite the fact that messages B1-B6 have scrolledup out of the viewport 74. As shown in FIG. 5(d), the second dateseparator item 80 b remains in the topmost field 76 a of the viewport 74until the next, i.e., third date separator item 80 c “pushes” it up outof the viewport 74, as shown in FIG. 5(e). Through this “sticky”operation of the date separator items 80, the user is always aware ofthe date (and message count, etc.) associated with the messages listedin the viewport 74, even when the number of messages for a particulardate exceeds the display capacity of the viewport 74. In thisembodiment, as downwards scrolling occurs each date separator item 80 isheld in the topmost field 76 a until it is “pushed” out, i.e. replaced,by the next date separator item 80 in the sequence. Accordingly, thetopmost field 76 a always contains a date separator item 80.

In another embodiment, as illustrated in FIG. 5(c 2), the “sticky”operation of the date separator item 80 is dependent upon whetheranother date separator item is visible in the viewport 74. As shown inFIG. 5(c 2), the third date separator item 80 c has scrolled upwardsinto the viewport 74, so the second date separator item 80 b need not beheld in the topmost field 76. The rationale is that a user will be ableto deduce the date associated with the messages above the third dateseparator item 80 c. In this embodiment, the date separator item 80 isheld in the topmost field 76 a of the viewport 74 if another dateseparator item 80 has not yet scrolled into the viewport 74. In otherwords, there must always be at least one date separator item 80 visiblein the viewport 74.

Although the foregoing description relates to scrolling down through alist, those of ordinary skill in the art will be able to appreciate thatsimilar conditions may be imposed on the display of date separator items80 to provide similar “sticky” operation for scrolling up a list.

Reference is now made to FIG. 6, which shows, in flowchart form, anembodiment of a method 100 for displaying messages on a handheld device.It will be appreciated that in this embodiment the “sticky” dateseparator item remains in the topmost field of the viewport until“pushed” out by a new date separator item.

The device includes a list of messages in chronological format. One ofthe messages is determined, in step 102, to be the first messagedisplayed in the viewport. In an initial state, when first started, thismay be the most recent message in the chronological list. In a laterstate of use, if the user has partially scrolled through the list thenthe message identified in step 102 as the first message in the viewportmay be a message elsewhere on the list.

In step 104, the date associated with the first message is determined.Date and/or timestamp information may be stored with the message inmemory. Based upon the date information identified in step 104, a dateseparator item is rendered in the topmost field of the viewport in step106. The first message is then rendered in the next (i.e. second) fieldin the viewport in step 108. In step 110, the device looks at the nextmessage in the list.

In step 112, the device determines if the next message corresponds to anew date. If the next message in the list is associated with a new date,i.e. a date different from the date associated with the previousmessage, then the method continues to step 114, wherein a new dateseparator item is rendered in the viewport in the field below theprevious message. If the next message in the list is not associated witha new date, then the next message is rendered in the viewport in thefield below the previous message. The method 100 thus continues torender messages and, where appropriate, date separator items, in thefields of the viewport until no further fields are available, as wouldbe determined in steps 116 or 120.

It will be appreciated that if a user scrolls downwards or upwards, thenthe “first message” to be shown in the viewport, as determined in step102, would change. The change to a new first message may necessitate achange in the date separator item shown in the topmost field if the newfirst message is associated with a different date than the previousfirst message. The appearance to the user will be of a “sticky” dateseparator item in the topmost field, while the other date separatoritems in the viewport will scroll with the scrolling messages.

In another embodiment, the messages may be stored in objects, whereinthe objects each relate to a specific date. Accordingly all the messageswithin an object are associated with a certain date. The grouping ofassociated messages in an object permits operations to be performed onthe group of messages by date. This data structure may facilitateimplementation of the collapsing and expanding of messages under dateseparator headings. Suitable modifications to the method 100 describedin FIG. 6 to accommodate such a data structure will be apparent to thoseof ordinary skill in the art.

The teachings of the present application may be embodied in otherspecific forms without departing from the spirit or essentialcharacteristics thereof. Certain adaptations and modifications will beobvious to those skilled in the art. The above discussed embodiments areconsidered to be illustrative and not restrictive.

1. A method of displaying data items on a display of an electronicdevice, the method comprising: displaying a viewport on the display, theviewport including a plurality of fields arranged in chronological orderin a vertical list, wherein each of the fields contains either a dataitem or a date separator item, each of the fields having an associateddate, wherein the plurality of fields include a topmost field in which afirst date separator item is displayed, wherein the first date separatoritem is based upon an associated date of a field of the viewport locatedimmediately below the topmost field; displaying a second date separatoritem in the topmost field of the viewport in response to scrolling ofthe viewport when the second date separator item appears in a field ofthe viewport located immediately below the topmost field responsive tothe scrolling of the viewport, wherein the second date separator item isbased upon the associated date of the field of the viewport locatedimmediately below the second date separator item; and maintaining thedisplay of the first date separator item in the topmost field of theviewport in response to scrolling of the viewport when the second dateseparator item does not appear in the field of the viewport locatedimmediately below the topmost field responsive to the scrolling of theviewport.
 2. The method of claim 1, further comprising: determiningwhether the second date separator item appears in a field of theviewport located immediately below the topmost field responsive to thescrolling of the viewport, the scrolling of the viewport causing one ormore fields in the viewport to be advanced.
 3. The method of claim 1,wherein the first date separator item includes a date indicatoridentifying an associated date of the field of the viewport locatedimmediately below the topmost field.
 4. The method of claim 1, whereinthe first date separator item includes a count indicator, the countindicator identifying a number of data items associated with the datewhich the first date separator item is based upon.
 5. The method ofclaim 1, wherein the data items comprise tasks.
 6. The method of claim1, wherein the data items comprise calendar entries.
 7. The method ofclaim 1, wherein the data items comprise messages.
 8. The method ofclaim 7, wherein the messages are one of email, text messages, audiomessages or video messages.
 9. The method of claim 1, wherein displayeddata items include header information.
 10. The method of claim 9,wherein, when the data items comprise messages, the header informationcomprises one or more of a sender of a message, a title of the messageor an urgency indicator.
 11. The method of claim 1, wherein the fieldsof the plurality of fields are arranged in a chronological order basedupon a date and time associated with each item.
 12. An electronic devicecomprising: a display; a memory; an input device; and a processorcoupled to the display, memory and input device, wherein the memory hasstored thereon executable instructions that, when executed by theprocessor, cause the electronic device to: display a viewport on thedisplay, the viewport including a plurality of fields arranged inchronological order in a vertical list, wherein each of the fieldscontains either a data item or a date separator item, each of the fieldshaving an associated date, wherein the plurality of fields include atopmost field in which a first date separator item is displayed, whereinthe first date separator item is based upon an associated date of afield of the viewport located immediately below the topmost field;display a second date separator item in the topmost field of theviewport in response to scrolling of the viewport when the second dateseparator item appears in a field of the viewport located immediatelybelow the topmost field responsive to the scrolling of the viewport,wherein the second date separator item is based upon the associated dateof the field of the viewport located immediately below the second dateseparator item; and maintain the display of the first date separatoritem in the topmost field of the viewport in response to scrolling ofthe viewport when the second date separator item does not appear in thefield of the viewport located immediately below the topmost fieldresponsive to the scrolling of the viewport.
 13. The electronic deviceof claim 12, wherein the first date separator item includes a dateindicator identifying an associated date of the field of the viewportlocated immediately below the topmost field.
 14. The electronic deviceof claim 12, wherein the first date separator item includes a countindicator, the count indicator identifying a number of data itemsassociated with the date which the first date separator item is basedupon.
 15. The electronic device of claim 12, wherein the data itemscomprise tasks or calendar entries.
 16. The electronic device of claim12, wherein the data items comprise messages.
 17. A non-transitorymachine readable medium tangibly embodying machine executableinstructions for displaying items on a display of an electronic devicewhen executed by the processor of the electronic device, cause theelectronic device to: display a viewport on the display, the viewportincluding a plurality of fields arranged in chronological order in avertical list, wherein each of the fields contains either a data item ora date separator item, each of the fields having an associated date,wherein the plurality of fields include a topmost field in which a firstdate separator item is displayed, wherein the first date separator itemis based upon the associated date of a field of the viewport locatedimmediately below the topmost field; display a second date separatoritem in the topmost field of the viewport in response to scrolling ofthe viewport when the second date separator item appears in a field ofthe viewport located immediately below the topmost field responsive tothe scrolling of the viewport, wherein the second date separator item isbased upon the associated date of the field of the viewport locatedimmediately below the second date separator item; and maintain thedisplay of the first date separator item in the topmost field of theviewport in response to scrolling of the viewport when the second dateseparator item does not appear in the field of the viewport locatedimmediately below the topmost field responsive to the scrolling of theviewport.
 18. A method of displaying data items on a display of anelectronic device, the method comprising: displaying a viewport on thedisplay, the viewport including a plurality of fields arranged inchronological order in a vertical list, wherein each of the fieldscontains either a data item or a date separator item, each of the fieldshaving an associated date, wherein the plurality of fields include atopmost field in which a first date separator item is displayed, whereinthe first date separator item is based upon an associated date of afield of the viewport located immediately below the topmost field;displaying a data item in the topmost field of the viewport in responseto the scrolling of the viewport when a second date separator itemappears in another field of the viewport responsive to the scrolling ofthe viewport; and maintaining the display of the first date separatoritem in the topmost field of the viewport in response to the scrollingof the viewport when a second date separator item does not appear inanother field of the viewport responsive to the scrolling of theviewport.
 19. The method of claim 18, further comprising: determiningwhether a second date separator item appears in a field of the viewportresponsive to the scrolling of the viewport, the scrolling of theviewport causing one or more fields in the viewport to be advanced. 20.The method of claim 18, further comprising: displaying a second dateseparator item in the topmost field of the viewport in response toscrolling of the viewport when the associated date of the field of theviewport located immediately below the topmost field changes to a newvalue, wherein the second date separator item is based upon the newvalue of the associated date of the field of the viewport locatedimmediately below the topmost field.